#include "mainwindow.h"
#include "ui_mainwindow.h"

/* 图标 */
#include <QIcon>
/* 图片 */
#include <QPixmap>
#include <QDebug>
/* 对话框 */
#include <QMessageBox>

/* QJSON. */
#include <QJsonObject>
#include <QJsonDocument>

/* 文件 */
#include <QFile>

/* 考勤界面头文件 */
#include <kaoqinsys.h>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    /* 固定窗口尺寸 */
    setFixedSize(380,480);

    /* 修改标题 */
    setWindowTitle("智能考勤系统");

    /* 修改软件图标 */
    QIcon icon(":/icons/blackcat.png");
    setWindowIcon(icon);

    /* 设置头像 */
    /* 设置图片 */
    QPixmap img(":/imgs/labi.jpeg");
    ui->headlmg->setPixmap(img.scaled(ui->headlmg->width(),ui->headlmg->height()));

    /* 信号和槽 */
    connect(ui->loginBtn, &QPushButton::clicked, this, &MainWindow::handleLoginSlot);
    connect(ui->regisBtn, &QPushButton::clicked, this, &MainWindow::handleRegisSlot);
}


/* 处理注册 槽函数 */
void MainWindow::handleRegisSlot()
{
   qDebug() << "handleRegisSlot" << endl;
}

/* 处理登录 槽函数 */
void MainWindow::handleLoginSlot()
{
   qDebug() << "handleLoginSlot" << endl;

   QString account = ui->accountInfo->text();
   QString passwd = ui->passwdInfo->text();

   qDebug() << "account:" << account;
   qDebug() << "passwd:" << passwd;

#if 0
   /* 伪代码 */
   if (account == "admin" && passwd == "admin")
   {
       QMessageBox::information(this,"登录","登录成功");

   }
   else
   {
       QMessageBox::warning(this,"登录","登录失败");

   }
#else

   /* 打开文件 */
   QString filePath = "D:\\KaoQinSystem\\GitTest\\KaoqinSystem\\KaoQinSystem\\config.json";
   QFile file(filePath);

   if (!file.open(QIODevice::ReadOnly))
   {
       QMessageBox::warning(this,"打开文件","文件打开失败");
       return;
   }

   /* 文件打卡成功 */
   QByteArray jsonData = file.readAll();
   /* 关闭文件 */
   file.close();

   /* 将数据解析成json类型的对象 */
   QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData);

   QJsonObject jsonObj = jsonDoc.object();

   QString userName = jsonObj["account"].toString();
   QString pwd = jsonObj["passwd"].toString();

   qDebug() << "userName:" << userName << endl;
   qDebug() << "pwd:" << pwd << endl;

   if (account == userName && passwd == pwd)
   {
      QMessageBox::information(this,"登录","登录成功");

       /* 创建一个新的页面 */
      KaoqinSys * newInterFace = new KaoqinSys (this);

      /* 让新界面出现 */
      newInterFace->show();

      /* 让当前页面隐藏 */
      this->hide();


   }
   else
   {
       QMessageBox::warning(this,"登录","登录失败");
   }

#endif
}

MainWindow::~MainWindow()
{
    delete ui;
}
